مقدمه
به طور مسلم بين جامعه اطلاعاتي و کامپيوتر ارتباطي مستقيم برقرار است. طوري که ميتوان مقولهاي مستقل با نام computer and communication) C&C) را مطرح کرد. همگي ما به اين مرحله رسيدهايم که فعاليتهاي تجاري، اقتصادي، مخابراتي و خلاصه انواع مديريتها را از راه دور با کامپيوتر انجام دهيم. به همين منظور نيازمند برقراري ارتباط بين کامپيوترها توسط شبکههاي کامپيوتري هستيم.
شبکههاي ارتباطي مفهومي وسيع دارند. شبکه براي اهداف کلاني مانند بنگاههاي اقتصادي، تجارت الکترونيک، بانکداري الکترونيک به کار ميرود و براي برقراري ارتباط بين کامپيوترها و ايجاد شبکه، پروتکلها و استانداردهايي خاص وجود دارد. يکي از اين پروتکلها، پروتکل اينترنت (Internet Protocol) است. همانطور که ميدانيد، اطلاعات ارسالي بين کامپيوترها و مهمتر از آن بين شبکهها براساس پروتکل IP صورت ميپذيرد. اين پروتکل وظيفه مسيريابي و آدرسدهي، تحويل بسته (Packet) به مقصد، مرتبسازي آنها و... را به عهده دارد.
در هر بسته اطلاعاتي يک آدرس فرستنده و يک آدرس گيرنده است. اين آدرس همان آيپي آدرس فرستنده و آيپي آدرس گيرنده است. در نتيجه هر کامپيوتر يا دستگاه موجود در شبکه که به عنوان Host شناخته ميشود، بايد از يک آدرس منحصر به فرد تحت عنوان IP Address برخوردار باشد.
انواع آيپي آدرس
آيپي آدرس در دو نسخه چهار (IPv4) و نسخه شش (IPv6) طراحي و ارايه شده است.
قبل از پرداختن به بحث آيپي آدرس نسخه 6 يا به عبارت ديگر IPv6، براي درک بهتر مطلب، IPv4 را مرور کلي ميکنيم و بعد به تفاوتهاي بين آنها و علل پيدايش IPv6 ميپردازيم.
همانطور که ميدانيد، آيپي آدرس نسخه چهار عددي 32 بيتي است که هر بيت آن از 0 يا 1 تشکيل شده و براي سهولت در خواندن و نوشتن، هر 8 بيت با يک نقطه
(Dot) جدا ميشود. اما باز هم براي راحتي کار، بنا بر قرارداد هر 8 بيت را از حالت باينري به حالت دسيمال مينويسيم که قابل فهمتر باشد. بنابراين در اصل آيپي آدرس به شکل زير است:
11000000101010001100100110100100101
|
که پس از جداسازي، تبديل به شکل زير ميشود:
11000000.10101000.11001001.10100101
|
و در انتها به صورت دسيمال 192.168.201.165 نوشته ميشود. به همين علت به آنDotted decimal notation ميگويند.
نوشتن آيپي آدرس به صورت Dotted decimal (دسيمال نقطهاي) قواعدي دارد که شرح آن در حوصله اين مقاله نيست اما براي درک بهتر مقاله، مختصري در مورد آن در کنار مطالب IPv6 صحبت خواهيم کرد.
نحوه نمايش آيپي آدرس در نسخه 6 (IPv6)
يکي از مشکلات نسخه چهار، تعداد کم آيپي آدرس است. مقدار هر يک از اين چهار بخش که با نقطه از هم جدا شدهاند، بين صفر و 223 است که با اين ترتيب حدود چهار ميليارد آيپي آدرس قابل استفاده در اين نسخه وجود دارد. به سادگي ميتوان در يک نظر تفاوت بين IPv6 و IPv4 را تشخيص داد. يک آدرس IPv6 از 128 بيت براي آدرسدهي استفاده ميکند که با اين ترتيب حدود 2 به توان 128 آدرس
(عددي 39 رقمي) خواهيم داشت و به نظر نميرسد با اين مقدار آدرس تا چند دهه آينده دچار کمبود آيپي آدرس شويم.
حال براي درک آيپي آدرس نسخه 6، هر 16 بيت را به صورت شانزدهتايي يا همان هگزادسيمال مينويسيم و با علامت کولن (:) آنها را از هم جدا ميکنيم. شکل 1 ساختار کلي يک آيپي آدرس نسخه 6 را نشان ميدهد.
شکل 1: ساختار کلّي و بخشهاي آيپي آدرس نسخه 6
به اين نوع نوشتن آيپي آدرس در اصطلاح Colon-Hexadecimal Notation ميگويند. براي نمايش سادهتر IPv6 ميتوان قسمتهايي از آن را که تماماً صفر است، فقط با يک صفر نمايش داد و يا تمام صفرها را به همراه کولن بعد از آن حذف کرد و همچنين اگر قبل از عددي هر تعداد صفر باشد، ميتوان صفرها را حذف کرد (اين حالت فقط در بخشهاي 16 بيتي صدق ميکند، نه در کل آيپي آدرس).
شکل 2 مراحل سادهنويسي IPV6 و نيز حذف صفرها را نمايش ميدهد.
شکل 2: فشردهسازي صفرها در IPv6
براي مثال آدرسff05::2 در حقيقت FF05:0000:0000:0000:0000:0000:0000:0002
است که صفرهاي اضافه آن حذف شدهاند. براي اتصال به يک IPv6 با استفاده از پروتکل Http در يک مرورگر وب مانند اينترنت اکسپلورر، بايد آيپي آدرس مقصد را داخل علامت [] قرار دهيم. زيرا علامت : (کولن) در تمامي مرورگرها به معني شماره پورت است.
نکته1: به IPv6، آيپي نسل آينده يا IPNG هم ميگويند.
نکته2: آيپي آدرس نسخه 6 نميتواند با :: شروع شود.
نکته3: در هر قسمت 16 بيتي ميتوان حداکثر از عدد DDDD و حداقل از 0000 استفاده کرد.
نکته4: يک آدرس نسخه 6 نميتواند به شکل :: باشد.
پيشوندها در IPv6
همانطور که ميدانيد آيپي آدرس نسخه 4 از دو قسمت تشکيل ميشود:
• قسمت ثابت که NetID يا SubnetID نيز گفته ميشود. اين بخش نشاندهنده تعداد بيتهاي اختصاص داده شده به آدرس شبکه است و براي تمام کامپيوترهاي شبکه يکسان است و به CIDR Notation يا Slash Notation نيز معروف است.
• قسمت متغير که به HostID معروف است. اين بخش در کامپيوترهاي شبکه متغير است.
حال براي تفکيک اين دو قسمت از يک عدد 32 بيتي به نام Subnet Mask استفاده ميشود. در IPv6 چيزي به نام Subnet Mask وجود ندارد اما به جاي آن
Prefix (پيشوند) وجود دارد. پيشوند مشخصکننده تعداد بيتهاي ثابت در IPV6 است.
به طور مثال آيپي آدرس 2001::3 با پيشوند 64 بيت به صورت 2001::3/64 نوشته ميشود، مفهوم اين است که 64 بيت از سمت چپ ثابت و نشاندهنده آدرس شبکه (SubnetID) است و مابقي ميتواند براي کامپيوترهاي داخل شبکه تغيير کند.
نکته: ميتوان براي هر کامپيوتر چندين SubnetID تعريف کرد که به اين تکنيک Multinetting ميگويند.
نکته: اگر پيشوند آيپي آدرسي مشخص نشود، به طور پيشفرض 64 بيت در نظر گرفته ميشود (شکل 3).
شکل 3: پيشوند به جاي Subnet Mask در IPv6
انواع آدرسدهي در IPv6
همانطور که در شکل 4 ميبينيد، در IPv6 سه نوع آدرسدهي به نامهاي
Unicast، Multicast و Anycast وجود دارد که در ادامه به توضيح هر يک ميپردازيم.
شکل 4: ساختار آدرسدهي در IPv6
آدرسهاي unicast
اين آدرسها مشخصکننده تنها يک اينترفيس (interface) در شبکه هستند و بستهاي که به مقصد آدرس unicast فرستاده ميشود، تنها به دست يک اينترفيس که با اين نوع آدرس مشخص شده ميرسد. در واقع اين نوع آدرسها همانند آدرسهاي unicast در IPv4 هستند. البته تکنيکي وجود دارد که براساس آن ميتوان يک آيپي آدرس نسخه 6 و از نوع unicast را به چندين اينترفيس يا کلاينت و يا سرور اختصاص داد. معمولاٌ از اين تکنيک به منظور موازنه کاري يا همان Load Balancing در سرورهاي پرکاربرد و مهم مثل ميل سرور استفاده ميشود.
همانطور که در شکل 4 نيز نشان داده شده است، اين نوع آدرسدهي خود چند نوع دارد که در ادامه به آنها اشاره ميشود.
آدرسهاي Global Unicast
اين آدرسها قابليت مسيردهي در اينترنت را دارند و به عنوان يک لينک معتبر در اينترنت شناخته ميشوند. به اين نوع آدرسها Aggregatable Address نيز ميگويند. ساختار و بخشهاي مختلف اين نوع آدرس را در شکل 5 مشاهده ميکنيد.
شکل 5: ساختار و قسمتهاي مختلف آدرسهاي Global Unicast
اين ساختار از بخشهاي زير تشکيل شده است:
Format Prefix) FP): سه بيت بوده و تعيينکننده نوع آيپي آدرس است. به عنوان مثال fp در آدرسهاي Global unicast معادل001 است.
top Level Aggregate IDentifier) tLA-ID): اين قسمت توسط سازمان بينالمللي تخصيص آدرسهاي اينترنتي IANA اختصاص داده ميشود. با اطلاع از اين قسمت ميتوانيم از محل جغرافيايي يک آيپي آدرس مطلع شويم.
Reserve) Res): اين شناسه 8 بيتي در واقع فضاي کمکي براي tLA-ID و NLA-ID است. به اين مفهوم که اگر در آينده tLA-ID و يا NLA-ID با کمبود فضا مواجه شدند، از اين فضاي کمکي برداشته و به خود اضافه کنند.
Next Level Aggregate Identifier) NLA-ID): شناسه 24 بيتي براي حوزههاي کوچکتر از tLA است.
Site Level Aggregate IDentifier) SLA-ID): از اين قسمت براي مشخص کردن حوزههاي کوچکتر از سطح NLA استفاده ميشود. به عنوان مثال براي مشخص کردن شرکتها و سازمانهاي دولتي در داخل يک کشور از اين قسمت استفاده ميشود.
Interface Identifier) Interface ID): از اين شناسه براي مشخص کردن آدرس منحصر به فرد هر اينترفيس شبکه استفاده ميشود. فضاي اختصاص داده شده به اين قسمت ثابت بوده و 64 بيت است.
آدرسهاي Link-Local unicast
اين نوع آدرسها معادل آدرسهاي APIPA در IPV4 هستند و به صورت خودکار پيکربندي ميشوند. اين آدرسها که در غياب DHCP Server ايجاد ميشوند، در IPv4 برابر 169.254.0.0/16 و در IPv6 معادل fe80::/64 هستند. به بياني ديگر اگر در هنگام تنظيم آيپي آدرس، در کادر محاورهاي Properties کارت شبکه گزينه
Obtain IPV6 address Automatically را انتخاب کنيم، سيستم عامل به طور خودکار براساس تلفيقي از MAC Address مربوط به کارت شبکه با آدرسlink-local، يک آدرس IPv6 به کارت شبکه اختصاص ميدهد. شکل 6 ساختار اين آدرسها را نشان ميدهد.
شکل 6: ساختار آدرسهاي Link-Local
اين آدرسها داراي 10 بيت اوليه با عدد 1111111010 و به دنبال آن 54 بيت فقط صفر هستند. پس در نتيجه 64 بيت اوّل ثابت و 64 بيت دوم براساس MAC Address تغيير ميکند.
آدرسهاي Site-Local Unicast
اين نوع آدرسها در واقع از نوع آدرسهاي Private هستند که در اينترنت غير معتبرند و قابليت مسيردهي در اينترنت را ندارند (به اصطلاح Valid نيستند). اين آدرسها همانند آدرسهاي Private در IPv4 هستند. آدرسهاي Site-Local را به نام
Unique Local نيز ميشناسند.
همانطور که در شکل 7 مشاهده ميکنيد، اين آدرسها با 16 بيت ثابت (fec0) شروع ميشوند و به دنبال آن 32 بيت صفر و سپس 16 بيت مربوط به SubnetID است که معمولاً آن را هم صفر در نظر ميگيرند. 64 بيت پاياني اين نوع آدرسها همان interfaceID يا HostID است که براي هر کامپيوتر منحصر به فرد است.
شکل 7: ساختار آدرسهاي Site-Local
آدرسهاي Special Unicast
آدرسهاي Special به دو دسته Unspecified و LoopBack تقسيم ميشوند. آدرسهاي Unspecified معمولاً به صورت 0:0:0:0:0:0:0:0 يا به طور خلاصه :: نمايش داده ميشوند (به مفهوم عدم حضور آيپي آدرس). يعني اگر هيچ آيپي آدرسي به کارت شبکه اختصاص داده نشود، اين نوع آيپي آدرس به کارت شبکه اختصاص مييابد. اين نوع آدرس در IPv4 معادل 0.0.0.0 است.
نکته: هيچگاه از آدرس Special Unicast به عنوان آدرس فرستنده يا گيرنده استفاده نخواهد شد.
اما آدرسهاي Loopback براي آزمايش کارکرد داخلي TCP/IP مورد استفاده قرار ميگيرند و نبايد به عنوان يک آدرس مشخص براي اينترفيس تعيين شود. اين آدرس به صورت 0:0:0:0:0:0:0:1 و يا در حالت خلاصه به صورت ::1 نوشته ميشود که معادل آدرس 127.0.0.1 در IPv4 است.
آدرسهاي NSAP:
آدرسهاي (NSAP (Network Service Access Point معمولاً در شبکههايي که از مدل OSI استفاده ميکنند، کاربرد دارد. لازم به ذکر است که شبکه اوليه ARPANET که توسط وزارت دفاع آمريکا ايجاد شده بود، به جاي استفاده از مدل چهار لايه TCP/IP از مدل هفت لايه OSI پيروي ميکرد. در اين شبکه براي آدرسدهي قطعات و دستگاهها، از نوع آدرسدهي تحت عنوان NSAP استفاده ميشد. اين نوع آدرسدهي امروزه فقط براي شبکههاي داخلي مورد استفاده قرار ميگيرد و در شبکههاي عمومي که قصد مسيردهي در اينترنت را دارند کار برد ندارد، زيرا اينترنت براساس TCP/IP است و با NSAP سازگاري ندارد. امروزه بيشترين کاربرد NSAP در روترها و براساس پروتکل مسيردهي ISIS است. اين آدرسها معمولاً به عنوان آدرسهاي Anycast به روترها اختصاص داده ميشوند.
فرض کنيد يک آدرس NSAP به صورت زير داريم:
• ساختار اين آدرس با شمارهگذاري ارقام از صفر و از سمت چپ به شرح زير است:
• علامت $ مشخص کننده اين است که آدرس بايد به صورت هگزادسيمال نوشته شود.
• دو رقم اول (که در اين جا 49 است) يعني رقمهايي که در مکان صفر و يک قرار دارند، مشخص کننده نوع آدرس هستند. به طور مثال عددهاي 49 يا 48 به معني محلي بودن آدرس است.
• رقمهاي دوم تا پنجم مشخص کننده subnet هستند که در اصطلاح به
Area Number معروفند.
• رقمهاي 6 تا 17 مختص به Mac Address هستند.
• دو رقم آخر (رقمهاي 18 و 19 ( مشخص کننده نوع دستگاه هستند. به عنوان
مثال00 به معني روتر و 01 به معني سوييچ لايه 3 و 02 به معني فايروال است. شکل 8 ساختار کلي اين نوع آدرس را نشان ميدهد.
شکل 8: ساختار کلي آدرسهاي NSAP
آدرسهاي IPX
آدرسهاي (IPX (Internetwork Packet Exchange مخصوص شبکههاي
Novel Netware است و امروزه استفاده چنداني ندارد، زيرا شبکههاي ناول از پروتکل TCP/IP نيز پشتيباني ميکنند.
آدرسهاي Multicast
آدرسهاي Multicast قادر به ارسال بستههاي اطلاعاتي به بيش از يک کامپيوتر در شبکه هستند. در واقع ميتوان اينگونه بيان کرد که اين آدرسها يک ارتباط يک به چند را فراهم ميکنند. اين نوع آدرسها با تفاوت اندکي همانند آدرسهاي Multicast در IPv4 بوده و در واقع جايگزيني براي آدرسهاي Broadcast هستند. همانطور که ميدانيد در Broadcast مقصد وآيپي آدرس، تمامي Hostهاي داخل شبکه است اما در Multicast منظور فقط Hostهاي مورد نظر است.
نکته: آدرسهاي IPv6 Multicast را با نام one to many addresses نيز ميشناسند.
همانطور که در شکل 9 ملاحظه ميکنيد، اين نوع آدرسها با 8 بيت 1 در (FP) شروع ميشوند که معادل FF در مبناي 16 است و به دنبال آن از 4 بيت براي فيلد Flag و 4 بيت براي فيلد scope و 112 بيت براي فيلد GroupID تشکيل شده است.
شکل 9: ساختار کلي آدرسهاي Multicast در IPv6
در ادامه به توضيح مختصر هر يک از اين فيلدها ميپردازيم:
flags: اين فيلد برخي از تنظيمات مربوط به آيپي را در خود نگه ميدارد و تا کنون تنها Flag تعريف شده پرچم (T) Transient است. براي تنظيم اين پرچم از کمارزشترين بيت اين بخش استفاده ميشود. اگر بيت مربوطه صفر باشد، نشاندهنده اين است که آدرس Multicast دايمي بوده و توسط IANA اختصاص داده شده است و اگر اين پرچم يک باشد، يعني آدرس مذکور موقتي است. براي مشاهده آدرسهاي دايمي IPv6 اختصاص داده شده تا کنون توسط IANA، ميتوانيد به آدرس اينترنتي زير مراجعه کنيد:
scope: اين فيلد ناحيهاي را که آيپي مذکور بايد تحت پوشش قرار دهد، مشخص ميکند.
روترها با استفاده از پروتکلهاي مسيريابي خود و اطلاعاتي که از اين قسمت به دست ميآورند، تشخيص ميدهند که آيا بسته Multicast را به بيرون و به شبکه مجاور انتقال دهند يا خير.
جدول 1 فهرستي از ناحيهها و مقادير اختصاص داده شده در اين فيلد را نشان ميدهد.
جدول 1
group field: اين بخش مشخص کننده گروه Multicast است و براي هر ناحيه منحصر به فرد است. اين شناسه (group ID field) با شناسه ناحيه (scope field) مرتبط است، اما آدرسهايي که دايمي هستند، شناسه گروهشان با شناسه ناحيهشان مرتبط نخواهد بود. برخي از آدرسهاي Multicast به صورت رزرو شده هستند و به جايي اختصاص داده نميشوند. از اين قبيل آدرسها ميتوان به FF01:: تا FF0F:: اشاره کرد.
تبديل آدرسهاي IPv6 Multicast به آدرسهاي Ethernet
هنگامي که يک پکت به آدرس multicast فرستاده ميشود Mac Address مقصد به صورت (33-33-mm-mm-mm-mm) تنظيم ميشود که در آن mm-mm-mm-mm نشان دهنده 32 بيت انتهاي آدرس multicast ميباشد. براي آن که کارت شبکههاي موجود در يک شبکه بتوانند بستههاي multicast را دريافت کنند، ميتوان
Mac address مورد نظر را در Mac table مربوط به کارت شبکه ذخيره نمود.
هنگامي که يک پکت توسط کارت شبکه دريافت شود، در صورت يکي بودن
Mac address مقصد و Mac Address موجود در جدول اين بسته به لايههاي بالاتر ارسال خواهد شد.
به عنوان مثال يک Host با آدرس فيزيکي 00-AA-00-3f-2A-1C که داراي آدرس
IPv6 link-local به صورت
Fe80:: 2AA:FF:Fe3F:2A1C است، آدرسهاي زير را در Mac Table خود ذخيره ميکند.
• آدرس 33-33-FF-3F-2A-1C که منطبق به آدرس
Multicast Solicited Node Address يا همان ff02:: 1:ff3f:2A1c ميباشد.
• آدرس33-33-00-00-00-01 که معادل با آدرس تمامي hostهادر شبکه ميباشد (يعني همان آدرس ff02::1).
• آدرسهاي Multicast ديگر نيز بسته به مورد خود در جدول اضافه يا کم ميشوند.
آدرسهاي Anycast
در حال حاضر آدرسهاي Anycast به عنوان آدرس مقصد برروي routerها تعيين ميشوند. آدرسهاي anycast از روي آدرسهاي unicast بدست ميآيند و محدوده کاري آنها بستگي به محدوده کاري Address unicastهاي مرجع دارند.
نکته1: آدرس هاي IPv6 anycast را با نام one to one of many address هم ميشناسند.
نکته2: تمامي routerهاي داخل يک شبکه داراي آدرسهاي anycast يکساني هستند.
براي ساختن يک آدرس Anycast و اختصاص دادن آن به يک router بايد ابتدا بخش NetID مربوط به IPv6 Address شبکه را ثابت و قسمت SubnetID را صفر قرار دهيم. در واقع ميتوان گفت که براي ساخت چنين آدرسي نياز به داشتن IP Prefix شبکه داريم . به طور مثال براي شبکه2001:4188:1:1::/64 آدرس Anycast برابر با 2001:1:1:0:0:0:0 يا در حالت فشرده 2001:4188:1:1:: خواهد بود . حال اگر بستهاي به آدرس Anycast ارسال شود ، به دست نزديکترين آدرس Anycastاي که روي نزديکترين router ، تنظيم شده است ميرسد.
اين عمل با استفاده از ساختارهاي مسيريابي آدرس هاي
Anycast و Routing Metric هاي مسيريابي اتفاق ميافتد.
زماني که يک پکت با آدرس Anycast ارسال شود بعد از اين که به دست اولين و نزديکترين دستگاه برسد، ديگر به دنبال دستگاههاي ديگر نميگردد و مسيريابي به اتمام ميرسد.